网络数据(Web Data)
由 Peter Bailis 介绍
被选择的材料
Sergey Brin and Larry Page. The Anatomy of a Large-scale Hypertextual Web Search Engine. WWW, 1998.
在先前版本地论文集发行之后,万维网明确地指出了许多围绕其生命力与全球影响力的,悬而未决的问题。包括谷歌与脸书在内的数十亿的用户服务,如今已经成为了当前世界中的核心,而互联网与网络相关的科技已经逐渐走入了商业和个人生活之中。网络,毋庸置疑地会在可以预见的未来当中,持续存在。
网络的数据系统同样也带来了一系列的挑战,包括高可用伸缩,数据的异构性,以及一组复杂的且不断演化的用户交互模式。经典的关系型数据库系统设计,并没有把互联网的工作负载牢记于心,同时在这种技术环境下面,也并不是一个科学上面的选择。与之相对的,互联网数据管理要求信息查询,数据库内核,数据集成以及分布式系统之间的融合。在这个篇章之中,我们将会收录三篇论文,重点讨论互联网数据管理当中的技术解决方案。
我们前面的两篇论文,描述了搜索领域与索引领域的内部情况。我们的第一篇文章,从 Larry Page 和 Sergey Brin,两位谷歌的联合创始人,描述了谷歌早期原型的内部结构。这篇文章从历史的角度,与科学技术的角度来看,都非常有趣。第一个 web 索引,比如 Yahoo!,就直接是一个人工设计出来的“目录”。尽管目录的管理,被证明相当有用,但是它非常难以拓展,同时它需要相当巨大的人力资源,来加以维持。作为一个结果,一系列的包括 Google, 以及由第二篇论文的作者 Eric Brewer 联合创建的 Inktomi等搜索引擎,都在探索着自动化的方法。 这些引擎的设计,从概念上面来看,都非常简单:他们就是一组网络数据爬虫下载程序的拷贝,并且构建着(以及维护着)只读索引的相关性评分函数。查询,在这种情况下面,
这些引擎的设计在概念上很简单:一组爬网程序下载网络数据的副本,并构建(和维护)用于计算相关性评分函数的只读索引。而与之相对的情况在于,查询,由前端的web服务提供对应的服务,它从索引当中读取数据,并且将结果以有序的结果呈现出来,经由评分函数来进行排序。
这些引擎的实现与落地,实际上面来看,是相当复杂的事情。举例来说,评分的算法,就经过了高度的调整,而他们的实现,即使到了今日的搜索引擎,也被视作为商业的秘密:网络的作者,拥有很大的动机,以操作评分函数,来获取属于他们的竞争优势。在 Google 中描述的 PageRank 算法(细节位于[^126]中)就是一个评分函数的著名案例,同时它依靠对于超联接图的量算,来决断出每一个页面的“影响力”。这两篇文章之中,都描述了,在实践应用当中,如何使用绝大多数的未指定属性的组合来展开评分,包括“锚文本”(anchor text,它提供链接来源的上下文),以及其它形式的元数据。这些技术的算法基础,如关键词索引日期,甚至可以追溯到1950年代[^107],而其它的一些技术,比如 TFxIDF 排名以及反向搜索排名,可以追溯到1960年代[^139]。而应用于构建互联网搜索引擎的许多核心性系统创新,都来自于对他们的拓展,以及处理肮脏,异构的数据来源。
虽然这些论文的高层次细节,能够促进我们理解现代化的搜索引擎的执行原理,但是对于那些对构建工业级 Web 搜索引擎的过程的人们而言,这些论文同样也非常具有吸引力。而在其中所涉及到的一个核心信 息在于,Web 服务,必须考虑到多样性;Google 的作者,描述了在典型的信息检索技术当中做出来的假设,如何在网络环境当中,不再适用(比如,“比尔克林顿糟糕透了”的网页)。web 的数据源,以不同的速率,变化着,因此我们需要按照优先级来进行网页的爬取用以维护崭新的索引。Brewer 还强调了容错性,以及操作可用性的重要性,这就与他在领域当中构建 Inktomi 的经验相互对应(这也促进了包括容灾与备灾(harvest and yield ),CAP 理论的发展;参考第七章)。Brewer 同样描述了使用商业数据库构建搜索引擎的困难(比如,Informix 相较于 Inktomi 自用的解决方案而言,慢了十倍不止)。不过,他也强调了数据库系统设计的原理,包括“上下”设计,数据的独立性,以及声明式的查询引擎,在这个上下文中,都非常有价值 --- 如果适当调整的话。
而到了今天的话,网络搜索引擎这门技术,已经被认为相当成熟。不过,保持着竞争关系的服务(供应商们)通过不断加入附加功能,以便改善搜索的体验。今天的搜索引擎相较于纯文本数据页面的信息检索引擎而言,已经推进了许多。前面两篇文章实际上仅仅涵盖了 Google 或者 Baidu 这样的内部服务的一个小的部分。这些服务提供了很大范围的功能,包括目标推荐广告算法,图像搜索,导航,购物,以及移动搜索。毫无疑问地,这些领域在搜索,实体解析和索引技术方面,都存在着一定地漏洞,但是每一个领域,都有着他们需要适应的特殊性。
作为一个由庞大规模的网络数据引擎所实现的案例,我们收录了由 Google 的 Alon Halevy 所领导的 WebTables 项目。WebTables 允许用户查询和理解 HTML 表中存储的数据之间的关系。HTML 表由于缺乏固定的模式,其在结构上面,发生了固有的变化。不过,在网络规模上面,聚合足够多的数据,并且执行一些轻量化的自动化数据集合,可以实现一些有趣的查询(例如,流感的爆发地点,可以同包含城市人口数据的数据表相互结合起来)。而挖掘这些数据表的模式,明确它们的结构和准确性(例如,在实践中,论文语料库当中,只有1%的表才会是关系表),并且推断出它们的关系来,是相当困难的事情。而我们所包含的论文里面,描述了构建属性相关性统计数据库(AcsDB)的有关技术,并用此回答有关数据表元数据的查询,进而它们可以实现包括模式自动完成在内的许多新功能。WebTables 项目至今依旧在以种种不同的形式推进着,包括 Google 那集成在核心搜索科技中的 Table Search 项目;对于这个项目的更新可以在[^24]中找到。而产生结构化搜索结果的能力,在数个非传统领域,是非常值得参考的,包括移动,上下文,以及基于音频的搜索。
WebTables 的有关文章特别强调了与大规模网络数据处理有关的能力。在2009年的文章之中,Halevy和他的同事们描述了“数据的不合理有效性”,有力地证明了这样的事情,伴随着足够的数据量,就可以探索出足够的潜在结构来,进而降低构建模型的难度;而相对简单的数据挖掘技术,则常常胜过数学上更为复杂的统计模型[^79]。这一论点强调,通过大量的数据和计算,来解锁隐藏的结构的潜力,无论是挖掘出模式的相关性或者是执行语言之间的机器翻译。而有了足够的底料,那么趋势就会变得明显。即使仅仅检验了网络语料库当中1%的表也是如此,而 VLDB 2009年的论文当中,也对于154万个不同的关系做了调查研究,这个语料库“比'先前思考过的'大五个数量级”。
而对于大规模数据集合与系统架构的分析,得益于廉价的商品存储与 云计算的资源,其涉及的阻碍力量正在削弱。可惜的事情在于,对于在用户之间,展开复制反馈循环这件工作(例如,垃圾邮件发送的阻止程序),以及对应的算法(比如,搜索引擎的排名算法),依旧是一件很难的事情。互联网的公司,在这其中,扮演着独特的位置,它可以展开非常前沿的系统设计,以便于诠释这种反馈的循环。伴随着数据库科学逐渐向着各种交互领域提供对应的动力,我们深信这种范式将会变得更加重要。换而言之,数据库的市场,与感兴趣的数据库工作负载,可能能够从类似的分析当中受益。举例来说,在那些诸如 Amazon Redshift 与 微软 SQL Azure 的托管数据库上面,执行类似的分析,将会是一件非常有趣的事情,它们可以实现出各种功能来,包括索引的自动调整,查询的自适应优化,自非结构化数据当中发掘出模式来,查询的自动完成,以及可视化的推荐。
参考
[1] S. Balakrishnan, A. Halevy, B. Harb, H. Lee, J. Madhavan, A. Rostamizadeh, W. Shen, K. Wilder, F. Wu, and C. Yu.
Applying webtables in practice. In CIDR, 2015.
[2] E. Brewer et al. Lessons from giant-scale services. Internet Computing, IEEE, 5(4):46–55, 2001.
[3] A. Halevy, P. Norvig, and F. Pereira. The unreasonable effectiveness of data. IEEE Intelligent Systems, 24(2):8–12, Mar.
2009.
[4] H. P. Luhn. Auto-encoding of documents for information retrieval systems. Modern Trends in Documentation, pages
45–58, 1959.
[5] L. Page, S. Brin, R. Motwani, and T. Winograd. The PageRank citation ranking: bringing order to the web. Technical
report, Stanford InfoLab, 1999. SIDL-WP-1999-0120.
[6] G. Salton and M. E. Lesk. Computer evaluation of indexing and text processing. Journal of the ACM (JACM), 15(1):8–36,
1968.